package com.pactera.madp.cp.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.pactera.madp.common.core.util.R;
import com.pactera.madp.cp.api.bo.FromUserInfoBO;
import com.pactera.madp.cp.api.bo.IndexMsgBO;
import com.pactera.madp.cp.api.dto.ReqToUsersDTO;
import com.pactera.madp.cp.api.dto.wm.ReqMsgIndexDTO;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.OutputStream;
import java.util.List;

/**
 * @author: yangpengwei
 * @time: 2020/11/25 5:45 下午
 * @description 运营-聊天记录业务实现
 */
public interface IChatService {

    /**
     * 会话内容存档 - 会话员工下拉
     * 获取对应公司员工简略信息
     *
     * @param name   员工名
     * @return 员工信息集合
     */
    Page<FromUserInfoBO> getFromUserInfoList(String name,Integer type,Integer deptId,Page page);

    Page<FromUserInfoBO> getFromUserInfoListByContact(String name,Page page);

    List<FromUserInfoBO> getFromUserInfoList(String name,Integer deptId);

    /**
     * 会话内容存档 - 会话对象列表(员工)
     *
     * @return Page 分页对象, 内包含聊天对象信息集合
     */
    R getToUserInfoList(ReqToUsersDTO req, Page page);

    /**
     * 会话内容存档 - 会话对象列表（客户）
     *
     * @param req
     * @param page
     * @return Page 分页对象, 内包含聊天对象信息集合
     */
    R getToContactInfoList(ReqToUsersDTO req, Page page);

    /**
     * 会话内容存档 - 列表
     *
     * @return 聊天记录集合
     */
    R index(ReqMsgIndexDTO req, Page page);

    /**
     * 全局搜索
     *
     * @param req
     * @param page
     * @return
     */
    R<Page<IndexMsgBO>> indexPage(ReqMsgIndexDTO req, Page page);

    /**
     * 导出excel
     *
     * @param req
     * @param response
     * @param out
     */
    void exitExcelList(ReqMsgIndexDTO req, HttpServletResponse response, OutputStream out) throws IOException;

}
